package net.huashitong.ssydt.provider.exam.service;


import net.huashitong.ssydt.PaginationResult;
import net.huashitong.ssydt.exam.entity.SsExamPaper;
import net.huashitong.ssydt.exam.entity.vo.ExamPaperEditInVO;
import net.huashitong.ssydt.exam.entity.vo.ExamPaperInVO;
import net.huashitong.ssydt.exam.entity.vo.ExamPaperQueryInVO;
import net.huashitong.ssydt.exam.entity.vo.PaperListInVO;

import java.util.List;

/**
 * @author <a href="mailto:yhy23456@163.com">huiyang.yu</a>
 * @since 2017.09.04
 */
public interface SsExamPaperService {

    List<SsExamPaper> query(PaperListInVO paperListInVO);

    SsExamPaper getById(Long id);

    /**
     * 分页查询试卷列表
     *
     * @param examPaperQueryInVO 分页查询条件
     * @return 分页查询结果
     */
    PaginationResult<SsExamPaper> paginationQuery(ExamPaperQueryInVO examPaperQueryInVO);

    /**
     * 新增试卷信息
     *
     * @param examPaperInVO 新增试卷信息
     */
    void insertExamPaper(ExamPaperInVO examPaperInVO);

    /**
     * 编辑试卷信息
     *
     * @param examPaperEditInVO 试卷编辑信息
     */
    void updateExamPaper(ExamPaperEditInVO examPaperEditInVO);

    /**
     * 去重查询年月列表
     *
     * @return
     */
    List<String> findByDistinctBelongYearMonth();

    /**
     * 修改试卷题目数
     *
     * @param paperId        试卷ID
     * @param questionNumber 题目数量
     */
    void updatePaperQuestionNumber(long paperId, int questionNumber);

    int insert(SsExamPaper record);

    SsExamPaper getByPaperName(String paperName);

    void updateQuestionNumberAndCoefficient(SsExamPaper ssExamPaper);

    int deleteByPrimaryKey(Long id);
}
